HiFiForum.nu
Home | Forums | Profile | Register | Active Topics | Links | Members | Articles | PM | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

Private Messages
You must log in to check messages
 All Forums
 HiFiForum.nu - Specialintressen
 Teknik och DIY
 Styra digital pot. med PIC - nu halvanalog!
 New Topic  Topic Locked
 Printer Friendly
Author Previous Topic Topic Next Topic  

McGyver
Member

1737 Posts

Posted - 2006/06/17 :  10:46:03  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
Hej,
Beställde lite prover av DS1802 & DS1666 och fick dessa med posten i veckan.
Tanken är att styra dem via en PIC, t.ex. 16F870 eller liknande.
Skall användas primärt till ett 5.1 förstärkarprojekt, men även till 2-kanal om de visar sig låta ok.
Någon som har gjort detta och har tips på koppling / programvara !?
Vill ha en pot.som volymkontroll, denna ger ~0-5V in till en analog ingång på PIC'en - denna styr sedan i sin tur DS1802/DS1666 seriellt med möjlighet att variera nivåer till de olika kanalerna i programvaran.

[Edit] Jag är inte ute efter en "färdig" lösning, utan bara tips!

/R





The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater

Edited by - McGyver on 2007/04/10 11:22:12

Freddie
Member

322 Posts

Posted - 2006/06/17 :  12:24:14  Show Profile Send Freddie a Private Message
Roligt projekt. Funkar säkert bra att använda en pot och AD-omvandlaren på PIC:en, men jag hade nog använt en puslgivare/enkoder istället.

Har inte använt PIC på länge, utan kör med Atmel istället.
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2006/06/17 :  13:35:24  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
Freddie
Har sneglat lite på att köra med pulsgivare, men då jag även tänkt mig en LCD-dsplay för visning av volym, signalkälla o.s.v. på förstärkaren, så känns detta "enklare" att få till om man använder A/D-ingången på PICen.
Har labbat lite med Pic Basic Pro till olika projekt.
Amtel kretsarna har jag inte provat ännu tyvärr, men det lär väl inte vara några större svårigheter att ställa om sig!?

/R


The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater
Go to Top of Page

Freddie
Member

322 Posts

Posted - 2006/06/17 :  17:13:35  Show Profile Send Freddie a Private Message
Bascom AVR för Atmel-datorer är jättesmidigt att jobba med. I mina ögon helt perfekt för att göra små applikationer snabbt. Men PIC med lämplig kompilator är säkert lika bra. Har bara kört lite PIC med någon C kompilator tidigare.

Vet inte varför du tycker det är bökigare med pulsgivare dock, har provat båda alternativ. LSB från AD omvandlare brukar ofta flaxa, och ibland är det betydligt ostabilare än så av olika anledningar. Det slipper man med pulsgivare iaf. Bara att läsa tillstånden på A och B från -givaren, graykod.








Go to Top of Page

Freddie
Member

322 Posts

Posted - 2006/06/17 :  17:23:08  Show Profile Send Freddie a Private Message
Här är en billig, men väl fungerande pulsgivare.

http://www.elfa.se/pdf/35/03584745.pdf
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2006/06/18 :  10:19:40  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
Hmmmm.....får väl besöka Elfa och inhandla en pulsgivare!
Har använt en potentiometer/spänning som ÄR-värde i tidigare PIC-projekt, så man är väl lite färgad av detta.
Funderar på hur man får volymen att "lagras" när man stänger av förstärkaren och har en pulsgivare, men det är ju egentligen bara att lagra ÄR-värdet i minnet på PICen.
Ledig på måndag, så det blir till att åka och handla och sedan labba!

/R




The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater
Go to Top of Page

Jax
Member

667 Posts

Posted - 2006/06/18 :  11:14:05  Show Profile  Visit Jax's Homepage Send Jax a Private Message
En variant är att lagra det i ett EEPROM men de har en livslängd på typ 100k skrivningar.

En annan är ett litet statiskt minne drivet från en lithiumcell när spänningen är borta.

En tredje är att inte stänga av spänningen.

/Janne

Rörfreak och snål smålänning i blodet.
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2006/06/18 :  11:53:02  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
Hej Janne,
Tack för tips!
Den PIC jag tänkt använda, 16F870, har ett inbyggt EPROM på 128 byte, så inga problem att lagra variabler.
Man halkar lätt in på ett sätt att göra en sak, men det betyder ju inte alltid att det är det bästa/enklaste !
Jag får prova att använda pulsgivare, och vem vet - en ny värld kanske öppnar sig!
Blir det lyckat, kanske det kommer en bildtråd så småningom!

/R

The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater

Edited by - McGyver on 2006/06/18 11:54:01
Go to Top of Page

JohnA
Member

556 Posts

Posted - 2006/06/18 :  14:49:24  Show Profile  Visit JohnA's Homepage Send JohnA a Private Message
Jag vill tipsa om en trevlig liten C-kompilator från CCS. http://www.ccsinfo.com/
Proffsen kallar den lite föraktfullt för makroassembler och visst, den har
en del egna lösningar men jämfört med PIC-basic har man en proffsigare lösning.
Jämfört med att skriva i assembler kommer man mycket snabbt igång och det
finns massor av smidiga färdigskrivna subrutiner och funktioner att anropa.
Själv har jag mellanvarianten PCM för 14-bits PIC som jag tycker är lagom kraftfulla chip till det mesta. Jämfört med proffsverktygen är CCS PCM billig och jag har inte provat gratiskompilatorerna ute på nätet.

Elektronostalgist? -Javisst! http://elektroarkivet.se Skype: elektroarkivet.se
Min anläggning, uppdaterad 2006-06-11: http://www.hififorum.nu/forum/topic.asp?TOPIC_ID=30783
Go to Top of Page

Jax
Member

667 Posts

Posted - 2006/06/18 :  15:17:40  Show Profile  Visit Jax's Homepage Send Jax a Private Message
Ah, då är ju lagringen löst redan i profeten.

Ett sätt att hålla nere antalet skrivningar annars är till exempel: vänta en stund innan en förändring från pulsgivaren sparas i EEPROM. Hur lång denna tid ska vara blir väl mest en bekvämlighetsfråga. Om man funderar på hur ofta man justerar volymen så kanske man hamnar på speltiden för en skiva men någon minut upp till 20 minuter kanske blir bra.

/Janne

Rörfreak och snål smålänning i blodet.
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2006/06/18 :  17:22:21  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
JohnA
Tack för tipset!
Får ladda ner demoversionen om prova.
Vi körde Assembler och Pascal i skolan (länge sedan ), så jag har försökt undvika C bäst möjligt !
PicBasic Pro - funkar bra, men genererar onödigt mycket kod.
Har dock lyckats göra det jag vill utan att fylla minnet i PICen, så ännu är det inget problem.

Janne
Går nog att lösa genom att lagra ÄR-värdet så fort volymen ändras (2-3s fördröjning). Man håller nog inte på att skruva upp och ner hela tiden och jag tror PICen klarar ganska många skrivningar innan den dör. Fast med två små döttrar i huset, kanske den sitter löst till!

/R

The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater
Go to Top of Page

pairair
Starting Member

23 Posts

Posted - 2006/06/18 :  19:56:33  Show Profile  Visit pairair's Homepage Send pairair a Private Message
Jag har också tittat lite på DS1802 och microcontroller-styrning (PIC). Jag hade tänkt mig en IR-fjärr för volymkontroll, men det är ju ingen nackdel att ha en "manuell" kontroll också. Det här projektet ligger vilande sedan en tid tillbaka, men man kanske skulle sätta igång igen. Jag hade börjat med att titta lite på LCD-biten och de specialtecken som skulle genereras...



Jag använder förresten en annan basic-kompilerare som är alldeles utmärkt: http://www.picbasic.org/proton_development_suite.php

...och här en enkel kodsnutt för att testa kommunikationen med DS1802

'****************************************************************
'* Name : DS1802_write_read.BAS *
'* Author : [Pär Sundberg] *
'* Notice : Copyright (c) 2006 *
'* : All Rights Reserved *
'* Date : 2006-03-29 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Include "Proton_4.inc"

Symbol CLK = PORTB.0
Symbol DTA = PORTB.1
Symbol RST = PORTB.2

Dim var1 As Byte
Dim var2 As Byte
Dim potval As Byte

ALL_DIGITAL = TRUE

DelayMS 50

Cls

Output RST
Output CLK

potval = 0

MAIN:
While potval < 63 'inc. potentiometer value
potval = potval + 1 'step 1 (0 = 0dB, 63 = -63dB)
GoTo WRITE_POT
Wend

WRITE_POT:
Set RST
SHOut DTA,CLK,lsbfirst,[potval\8,potval\8] 'set potentiometer 1 and 2 values, 8 bits each
Clear RST


READ_POT:
Set RST
SHIn DTA,CLK,lsbpre,[var1\8,var2\8] 'read pot 1 and 2 values, 8 bits each
Clear RST
Print At 1,1, Dec var1 'print decimal value of pot 1
Print At 2,1, BIN8 var2 'print binary value of pot 2

DelayMS 2000 'wait 2 seconds
GoTo MAIN
--------------------------------------------------

/Pär
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2006/06/18 :  20:06:44  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
Pär
Stort tack!!
Jag tänkte avancera till seriellstyring av DS1802 efter lite labbande, men du har ju redan koden för detta!
Det underlättar betydligt att styra på detta sätt, speciellt om flera DS1802or skall "sammarbeta" som ju krävs i en 5.1 förstärkare!
Nu klarar jag mig nog initialt med en analog pot som reglage!
Det blir sent ikväll - här skall labbas!

/R

The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater
Go to Top of Page

pairair
Starting Member

23 Posts

Posted - 2006/06/18 :  21:15:04  Show Profile  Visit pairair's Homepage Send pairair a Private Message
Hoppas det kan vara till nån nytta. Kodsnutten är tyvärr allt jag har kvar efter att ha formaterat om hårddisken, och backupen visade sig vara felaktig...
Du har väl läst den här också http://www.maxim-ic.com/appnotes.cfm/appnote_number/161

För att kunna läsa poten har jag för mig att jag hade ett motstånd mellan COUT och D (det står på sidan 10 i databladet ser jag nu, 2-10K)

/Pär
Go to Top of Page

Freddie
Member

322 Posts

Posted - 2006/06/21 :  15:49:36  Show Profile Send Freddie a Private Message
McGyver,

Hur går det med projektet?

Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2006/06/21 :  16:46:01  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
- Ja......inte så bra!
Jag får inte PICen att läsa värdena från DS1802an!?
Jobbar kväll imorgon, så hoppas kunna labba lite under kvällen då man kan vara uppe lite längre.
Men just nu, "ser det mörkt ut på Kameruns avbytarbänk" !
Skam den som ger sig dock!

/R

The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater
Go to Top of Page

ohmega
Member

4651 Posts

Posted - 2006/06/21 :  16:56:52  Show Profile Send ohmega a Private Message
McGyver:
Kan man inte ha en programsekvens som "sparar" volyminställningen då man stänger av förstärkaren?

Medlem i klubbstugan SVAVEL - "Vi kör så det ryker"
Mitt Hifi-intresse är ingen prylhobby - det är en materialsport :) Anläggning: DVD-Denver + Naim Nait2 + Epos ES11 OCH FT-1600 MkII + 200 CD-skivor
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2006/06/21 :  20:08:22  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
Ohmega
Jo, den biten är klar. Jag sparar värdena i minnet på PICen.
Problemet nu, är bara att få PICen att prata med den digitala potten.
Vet att det säker är en struntsak i koden, men det gäller att hitta den bara!
Nu skall jag se Holland-Argentina, men sedan blir det in i verkstaden och koda lite, så får vi se om de börjar prata med varandra!

/R

The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater
Go to Top of Page

pairair
Starting Member

23 Posts

Posted - 2006/06/23 :  09:03:14  Show Profile  Visit pairair's Homepage Send pairair a Private Message
Jag hade samma problem tills jag satte dit motståndet mellan COUT och D, typ:
http://bildarkiv.hififorum.nu/pairair/Graphic1.jpg

/Pär
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2007/03/30 :  12:32:42  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
Projektet har legat i träda, men igårkväll så satte jag igång labbandet igen!

Efter lite "basic" felsökning, så konstaterades att det inte går att skriva PortA.3 = 1 i PBP för att få denna utgång hög, utan det skall istället vara High PortA.3 => PIC och DS1802 pratar nu med varandra och jag kan läsa av potvärdet i dB!!!

Någon som har ett bra exempel på en kodsnutt för IR-detektering ?

Här skall byggas försteg nu!

/R

The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater

Edited by - McGyver on 2007/03/30 12:33:42
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2007/04/03 :  16:53:58  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
Har nu kommit en bra bit på vägen!

PICen kan läsa seriellt från DS1802:an, men har ännu inte fått till skrivningen!

Någon som har exempelkod ?

Fjärrstyrning funkar (RC5) och även den anslutna pulsgivaren.

Har provkört DS1802 med +/- 2.5V matning, men tycker den blir överstyrd lätt!?

Har i.o.f.s. kört utan buffert på utgången och ingen dämpning av ingången - allt labbkopplat!

Någon som har samma erfarenheter?

/R

The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2007/04/10 :  11:07:14  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
För att komma igång "snabbt" - så gjorde jag en styrning till en motorpot jag hade liggande.

Efter en massa programstrul och till sist ett hårdvarufel som gjorde att jag och Vemsom skrev om koden - så är det nu fart på grejorna!





Version 2, blir med DS1802 eller DS1666 - men en del andra projekt före, för nu kan jag ju reglera volymen från soffan!

/R


The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater
Go to Top of Page

Uniper
Member

668 Posts

Posted - 2007/04/13 :  23:33:32  Show Profile Send Uniper a Private Message
Mycket snyggt! Fjärrstyrning och pulsgivare har jag också använt i mitt försteg, fast med AVR istället för PIC. Väldigt skoj är det att programmerade där små chippen, men det tar lätt alldeles för mycket tid..
En liten fråga bara.. Hur gör du för att läsa ut volyminställningen från potten så att du kan visa den på display:en?

Jo propellern driver runt ett litet aggregat, som pumpar vatten genom tratten till ett termostat,
som i sin tur leder vattnet till ett skovelhjul, som sitter fast i en mast i vårat cykelskjul.
Go to Top of Page

ohmega
Member

4651 Posts

Posted - 2007/04/13 :  23:38:44  Show Profile Send ohmega a Private Message
Snyggt, McGyver

Medlem i klubbstugan SVAVEL - "Vi kör så det ryker"
Mitt Hifi-intresse är ingen prylhobby - det är en materialsport :) Anläggning: DVD-Denver + Naim Nait2 + Epos ES11 OCH FT-1600 MkII + 200 CD-skivor
Go to Top of Page

McGyver
Member

1737 Posts

Posted - 2007/04/14 :  08:52:13  Show Profile  Visit McGyver's Homepage Send McGyver a Private Message
Tack for kommentarerna!

Uniper: I denna version finns det ingen koppling för att läsa positionen på potten.
Jag "nollar" den vid start och sedan är det tänkt att jag skall använda fjärren för själva volymregleringen.
Potten (ratten) sitter där för att snabbt kunna sänka volymen om mina små döttrar är i närheten!
Funderade på att lägga en DC-spänning över potten och på så sätt läsa dess värde, men dels kräver det kondingar i signalvägen + jag vill hålla digital och analog-jorden skilda!

/R

The probability of someone watching you is proportional to the stupidity of your action.
- A. Kindsvater

Edited by - McGyver on 2007/04/14 10:26:39
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Topic Locked
 Printer Friendly
Jump To:
HiFiForum.nu © HiFiForum.nu except: Logos and Trademarks are property of their owners, Comments are property of their posters Go To Top Of Page
Denna sida genererades på 0.79 sekunder. Snitz Forums 2000